# graphics/render_screen.py
# 负责初始化 Pygame，创建并管理主屏幕，处理事件，以及控制帧率

import pygame
from config import SCREEN_WIDTH, SCREEN_HEIGHT, FPS


def render_screen(stickman):
    """
    初始化 Pygame 并进入主循环，不断渲染 stickman

    参数:
        stickman: Stickman 类的实例，包含 x, y 位置等信息
    """
    # === 1. 初始化 Pygame ===
    pygame.init()

    # === 2. 创建屏幕对象（即窗口）===
    screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
    pygame.display.set_caption("Pygame demo")

    # === 3. 创建时钟对象以控制帧率 ===
    clock = pygame.time.Clock()

    # === 4. 进入主循环 ===
    running = True
    while running:
        # === 处理事件 ===
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False  # 如果用户关闭窗口，则退出循环

        # === 填充背景色（这里使用白色，RGB(255, 255, 255)）===
        screen.fill((255, 255, 255))

        # === 在屏幕上绘制火柴人 ===
        from graphics.draw_stickman import draw_stickman
        draw_stickman(screen, stickman)

        # === 更新整个显示表面到屏幕上 ===
        pygame.display.flip()

        # === 控制帧率 ===
        clock.tick(FPS)

    # === 退出 Pygame ===
    pygame.quit()